diff --git a/system/libraries/Session/Session.php b/system/libraries/Session/Session.php
index 68819a6..41539a5 100755
--- a/system/libraries/Session/Session.php
+++ b/system/libraries/Session/Session.php
@@ -64,7 +64,10 @@
 
 		// Get valid drivers list
 		$CI =& get_instance();
-		$this->valid_drivers = array('Session_native', 'Session_cookie');
+		$this->valid_drivers = array(
+			'Session_native',
+		   	'Session_cookie'
+		);
 		$key = 'sess_valid_drivers';
 		$drivers = (isset($params[$key])) ? $params[$key] : $CI->config->item($key);
 		if ($drivers)
@@ -116,7 +119,7 @@
 	 */
 	public function load_driver($driver)
 	{
-		// Save reference to most recently loaded driver as library default
+		// Save reference to most recently loaded driver as library default and sync userdata
 		$this->current = parent::load_driver($driver);
 		$this->userdata =& $this->current->get_userdata();
 		return $this->current;
@@ -138,11 +141,13 @@
 			$child = str_replace($this->lib_name.'_', '', $driver);
 			if (isset($this->$child))
 			{
+				// Make driver current and sync userdata
 				$this->current = $this->$child;
-		        $this->userdata =& $this->current->get_userdata();
+				$this->userdata =& $this->current->get_userdata();
 			}
 			else
 			{
+				// Load new driver
 				$this->load_driver($driver);
 			}
 		}
@@ -167,8 +172,9 @@
 	 */
 	public function sess_regenerate($destroy = false)
 	{
-		// Just call regenerate on driver
+		// Call regenerate on driver and resync userdata
 		$this->current->sess_regenerate($destroy);
+		$this->userdata =& $this->current->get_userdata();
 	}
 
 	/**
@@ -209,7 +215,7 @@
 			// if it contains flashdata, add it
 			if (strpos($key, self::FLASHDATA_KEY.self::FLASHDATA_OLD) !== FALSE)
 			{
-                $key = str_replace(self::FLASHDATA_KEY.self::FLASHDATA_OLD, '', $key);
+				$key = str_replace(self::FLASHDATA_KEY.self::FLASHDATA_OLD, '', $key);
 				$out[$key] = $val;
 			}
 		}
diff --git a/system/libraries/Session/drivers/Session_cookie.php b/system/libraries/Session/drivers/Session_cookie.php
index 19ccd41..8ac92e4 100755
--- a/system/libraries/Session/drivers/Session_cookie.php
+++ b/system/libraries/Session/drivers/Session_cookie.php
@@ -72,7 +72,7 @@
 	 *
 	 * @var bool
 	 */
-	public $sess_expire_on_close		= FALSE;
+	public $sess_expire_on_close	= FALSE;
 
 	/**
 	 * Whether to match session on ip address
@@ -86,7 +86,7 @@
 	 *
 	 * @var bool
 	 */
-	public $sess_match_useragent		= TRUE;
+	public $sess_match_useragent	= TRUE;
 
 	/**
 	 * Name of session cookie
@@ -107,7 +107,7 @@
 	 *
 	 * @var string
 	 */
-	public $cookie_path			= '';
+	public $cookie_path				= '';
 
 	/**
 	 * Session cookie domain
@@ -156,7 +156,7 @@
 	 *
 	 * @var array
 	 */
-	public $userdata			= array();
+	public $userdata				= array();
 
 	/**
 	 * Reference to CodeIgniter instance
@@ -185,10 +185,25 @@
 
 		// Set all the session preferences, which can either be set
 		// manually via the $params array or via the config file
-		foreach (array('sess_encrypt_cookie', 'sess_use_database', 'sess_table_name', 'sess_expiration',
-		'sess_expire_on_close', 'sess_match_ip', 'sess_match_useragent', 'sess_cookie_name', 'cookie_path',
-		'cookie_domain', 'cookie_secure', 'cookie_httponly', 'sess_time_to_update', 'time_reference', 'cookie_prefix',
-		'encryption_key') as $key)
+		$prefs = array(
+			'sess_encrypt_cookie',
+			'sess_use_database',
+			'sess_table_name',
+			'sess_expiration',
+			'sess_expire_on_close',
+			'sess_match_ip',
+			'sess_match_useragent',
+			'sess_cookie_name',
+			'cookie_path',
+			'cookie_domain',
+			'cookie_secure',
+			'cookie_httponly',
+			'sess_time_to_update',
+			'time_reference',
+			'cookie_prefix',
+			'encryption_key'
+		);
+		foreach ($prefs as $key)
 		{
 			$this->$key = isset($this->_parent->params[$key]) ? $this->_parent->params[$key] :
 				$this->CI->config->item($key);
@@ -265,7 +280,13 @@
 		// Before continuing, we need to determine if there is any custom data to deal with.
 		// Let's determine this by removing the default indexes to see if there's anything left in the array
 		// and set the session data while we're at it
-		foreach (array('session_id','ip_address','user_agent','last_activity') as $val)
+		$defaults = array(
+			'session_id',
+			'ip_address',
+			'user_agent',
+			'last_activity'
+		);
+		foreach ($defaults as $val)
 		{
 			unset($custom_userdata[$val]);
 			$cookie_userdata[$val] = $this->userdata[$val];
@@ -285,8 +306,10 @@
 
 		// Run the update query
 		$this->CI->db->where('session_id', $this->userdata['session_id']);
-		$this->CI->db->update($this->sess_table_name,
-			array('last_activity' => $this->userdata['last_activity'], 'user_data' => $custom_userdata));
+		$this->CI->db->update($this->sess_table_name, array(
+			'last_activity' => $this->userdata['last_activity'],
+		   	'user_data' => $custom_userdata
+		));
 
 		// Write the cookie. Notice that we manually pass the cookie data array to the
 		// _set_cookie() function. Normally that function will store $this->userdata, but
@@ -535,7 +558,13 @@
 			{
 				// set cookie explicitly to only have our session data
 				$cookie_data = array();
-				foreach (array('session_id','ip_address','user_agent','last_activity') as $val)
+				$defaults = array(
+					'session_id',
+					'ip_address',
+					'user_agent',
+					'last_activity'
+				);
+				foreach ($defaults as $val)
 				{
 					$cookie_data[$val] = $this->userdata[$val];
 				}
@@ -570,7 +599,13 @@
 		{
 			// set cookie explicitly to only have our session data
 			$cookie_data = array();
-			foreach (array('session_id','ip_address','user_agent','last_activity') as $val)
+			$defaults = array(
+				'session_id',
+				'ip_address',
+				'user_agent',
+				'last_activity'
+			);
+			foreach ($defaults as $val)
 			{
 				$cookie_data[$val] = $this->userdata[$val];
 			}
diff --git a/system/libraries/Session/drivers/Session_native.php b/system/libraries/Session/drivers/Session_native.php
index 27db942..356deb4 100755
--- a/system/libraries/Session/drivers/Session_native.php
+++ b/system/libraries/Session/drivers/Session_native.php
@@ -36,10 +36,20 @@
 		// Get config parameters
 		$config = array();
 		$CI =& get_instance();
-		foreach (array('sess_cookie_name', 'sess_expire_on_close', 'sess_expiration', 'sess_match_ip',
-		'sess_match_useragent', 'cookie_prefix', 'cookie_path', 'cookie_domain') as $key)
+		$prefs = array(
+			'sess_cookie_name',
+			'sess_expire_on_close',
+			'sess_expiration',
+			'sess_match_ip',
+			'sess_match_useragent',
+			'cookie_prefix',
+			'cookie_path',
+			'cookie_domain'
+		);
+		foreach ($prefs as $key)
 		{
-			$config[$key] = isset($this->_parent->params[$key]) ? $this->_parent->params[$key] : $CI->config->item($key);
+			$config[$key] = isset($this->_parent->params[$key]) ? $this->_parent->params[$key] :
+				$CI->config->item($key);
 		}
 
 		// Set session name, if specified
